package com.antler.smt.service.portal;

import com.antler.smt.enums.ResultCodeEnum;
import com.antler.smt.request.portal.OrderReq;
import com.antler.smt.request.portal.OrderTestFileReq;
import com.antler.smt.response.admin.GetOrderListResp;
import com.antler.smt.response.base.Result;

/**
 * 订单接口
 *
 * @author zhangyi
 * @date 2018/3/28 14:00
 */
public interface OrderService {

    /**
     * 根据id获取详细订单列表
     *
     * @param id
     * @return
     */
    Result<GetOrderListResp> getOrderList(Long id,Long memberId);

    /**
     *  采购商确认收货
     *
     * @param orderId
     * @return
     */
    Result<ResultCodeEnum> getGoods(Long orderId);

    /**
     *  获取其采购商的订单状态列表
     *
     * @param memberId 当前会员id
     * @param orderStatus
     * @return
     */
    Result<GetOrderListResp> getPurchaserOrderClassifyInfo(Long memberId, Integer orderStatus);

    /**
     * 获取服务商分类订单信息
     *
     * @param memberId 当前会员id
     * @param orderStatus
     * @return
     */
    Result<GetOrderListResp> getSupplierOrderClassifyInfo(Long memberId, Integer orderStatus);

    /**
     * 采购商的订单支付方式
     *
     * @param req
     * @param requirementId
     * @return
     */
    Result<ResultCodeEnum> payStyle(OrderReq req,Long requirementId);

    /**
     *  当前发布需求后的最红报价
     *
     * @param orderId
     * @return
     */
    Result<Long> lastOffer(Long orderId);

    /**
     * 上传文件附件id
     *
     * @param orderTestFileReq
     * @return
     */
    Result updateUploadTestFile(OrderTestFileReq orderTestFileReq);

    /**
     * 获取订单内的检验报告
     *
     * @param orderId
     * @return
     */
    Result getOrderFileInfo(Long orderId);

}